package com.xp.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xp.entity.RoleMenu;

import java.util.List;

/**
 * 角色菜单关联服务接口
 * 
 * @author xp
 * @since 2024-01-01
 */
public interface RoleMenuService extends IService<RoleMenu> {

    /**
     * 根据角色ID查询菜单ID列表
     * 
     * @param roleId 角色ID
     * @return 菜单ID列表
     */
    List<Long> getMenuIdsByRoleId(Long roleId);

    /**
     * 根据菜单ID查询角色ID列表
     * 
     * @param menuId 菜单ID
     * @return 角色ID列表
     */
    List<Long> getRoleIdsByMenuId(Long menuId);

    /**
     * 为角色分配菜单
     * 
     * @param roleId 角色ID
     * @param menuIds 菜单ID列表
     * @return 是否成功
     */
    boolean assignMenusToRole(Long roleId, List<Long> menuIds);

    /**
     * 删除角色的所有菜单关联
     * 
     * @param roleId 角色ID
     * @return 是否成功
     */
    boolean removeMenusByRoleId(Long roleId);

    /**
     * 删除菜单的所有角色关联
     * 
     * @param menuId 菜单ID
     * @return 是否成功
     */
    boolean removeRolesByMenuId(Long menuId);
}